Data centers include facilities that are used to house computer systems and associated components, including telecommunications and storage systems. Data centers typically contain a set of routers and/or switches that transport traffic between the computer systems and external networks. A data center typically runs applications which handle the business and data of an organization. Components of the applications are databases, file servers, application servers, and other types of components.
Consolidation of data centers is one new approach being taken in the Information Technology (IT) industry. Consolidation of data centers involves the centralization of data centers in “mega data centers.” These mega data centers are changing the paradigm of computing from one of local computing to distant or cloud-based computing (e.g., “cloud computing”). Cloud computing involves the provision of dynamically scalable, and possibly virtualized resources, as a service over the Internet.
Along with the consolidation of data centers into mega data centers, another trend in the IT industry is the virtualization of multi-core Central Processing Units (CPUs) to run multiple, independent virtual systems. Virtualized CPUs may implement multiple “virtual machines.” Each virtual machine includes a software implementation of a machine that executes programs like a physical machine. A virtual machine may include two different types of virtual machines: a system virtual machine that provides a system platform that supports the execution of a complete operating system; and a process virtual machine that is designed to run a single program. The software running in a virtual machine is limited to the resources and abstractions provided by the virtual machine.